// components/camp-scenic/camp-scenic.js
Component({

  /**
   * 组件的属性列表
   */
  properties: {
    campScenicStatus: {
      type: Boolean,
      value: false
    }
  },

  /**
   * 组件的初始数据
   */
  data: {
    campScenicStatus: false,
    addList: [], //整体数据
    scenicName: "",
    address: "", //营地位置
    latitude: 0, //维度
    longitude: 0, //经度
  },
  lifetimes: {
    ready() {

    }
  },
  /**
   * 组件的方法列表
   */
  methods: {

    //重置数据
    resetData() {
      this.setData({
        scenicName: "",
        address: "", //营地位置
        latitude: 0, //维度
        longitude: 0, //经度
      })
    },
    //添加虚拟数据
    addData(e) {
      const object = {
        scenicName: e.detail.value.scenicName,
        address: e.detail.value.address,
        latitude: Number(this.data.latitude),
        longitude: Number(this.data.longitude),
      }
      console.log(object);
      var isEmpty = true;
      Object.keys(object).forEach(function (x) {
        if (object[x] === null || object[x] === "") {
          isEmpty = false;
        }
      });
      if (isEmpty) {
        this.data.addList.push({
          scenicName: e.detail.value.scenicName,
          address: e.detail.value.address,
          latitude: Number(this.data.latitude),
          longitude: Number(this.data.longitude),
        })
        this.resetData();
        this.onClose();
        this.triggerEvent("sendData", this.data.addList)
      } else {
        wx.showToast({
          title: "信息未填写完整",
          icon: "error",
          duration: 1500
        })
      }
      // console.log(instance.globalData.campData)
      console.log(this.data.addList);
    },
    onClose() {
      this.resetData()
      this.setData({
        campScenicStatus: false
      })
    },
    // 营地位置
    toCampLocation() {
      // wx.navigateTo({
      //   url: '/pages/campLocation/campLocation',
      // })
      // 检查用户权限状态
      wx.getSetting({
        success: (res) => {
          if (!res.authSetting['scope.userLocation']) {
            // 用户尚未授权或已拒绝授权
            // 主动请求授权
            this.requestLocationAuthorization();
          } else {
            // 已经授权，直接获取位置信息
            this.getUserLocation();
          }
        }
      });
    },
    requestLocationAuthorization() {
      // 请求用户授权位置信息
      wx.authorize({
        scope: 'scope.userLocation',
        success: () => {
          this.getUserLocation();
        },
        fail: (err) => {
          console.error('授权失败:', err);
          // 如果用户拒绝了授权，可以进一步提示用户去设置中手动开启
          this.showSettingPrompt();
        }
      });
    },
    showSettingPrompt() {
      // 提示用户去设置中开启位置权限
      wx.showModal({
        title: '需要位置权限',
        content: '请在设置中开启位置权限以正常使用本功能。',
        showCancel: false,
        confirmText: '去设置',
        success: (res) => {
          if (res.confirm) {
            wx.openSetting({
              success: (settingRes) => {
                if (settingRes.authSetting['scope.userLocation']) {
                  // 用户在设置中开启了位置权限
                  this.getUserLocation();
                } else {
                  // 用户仍然拒绝位置权限
                  console.log('用户仍未开启位置权限');
                }
              },
            });
          }
        },
      });
    },
    getUserLocation() {
      wx.getLocation({
        // type: 'wgs84',
        type: 'gcj02',
        success: (res) => {
          // console.log(res, "返回的数据")
          this.setData({
            latitude: res.latitude,
            longitude: res.longitude,
          });
          wx.chooseLocation({
            longitude: this.data.longitude,
            latitude: this.data.latitude,
            success: (res) => {
              // console.log(res, '########');
              this.setData({
                latitude: res.latitude,
                longitude: res.longitude,
                address: res.address
              });
            }
          })
        },
        fail: (err) => {
          console.error('获取位置失败:', err);
        },
        complete: () => {
          console.log('位置获取操作已完成');
        }
      });
    },
    //审核
    toExamine() {
      http.addScenic(this.data).then(res => {
        wx.showToast({
          title: '添加成功待审核',
          icon: 'success',
          duration: 1000
        })
        setTimeout(() => {
          // 返回到上一页
          wx.navigateBack({
            delta: 1,
          })
        }, 1000)
      })
    },
    // 获取景点详情
    getScenicInfo() {
      http.getScenicDetail(this.data.scenicId).then(res => {
        this.setData({
          scenicName: res.data.scenicName,
          address: res.data.address,
          latitude: res.data.latitude,
          longitude: res.data.longitude
        })
      })
    },
  }
})